package com.junqson.je.recruit.service;

import com.ctc.wstx.util.StringUtil;
import com.junqson.je.common.util.AppUtil;
import com.junqson.je.recruit.model.ResumeModel;
import com.junqson.je.recruit.model.dto.ResumeDTO;
import com.junqson.je.recruit.model.dto.ResumePrsDTO;
import com.junqson.je.recruit.repo.ResumeRepo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Arrays;

/**
 * @Descriptions
 * @Company
 * @Author Junqson
 * @Date 2020/2/3 19:30
 * @Version 1.0
 */
@Service
public class ResumeService {

    @Autowired
    ResumeRepo resumeRepo;


    public ResumeDTO getResume(Integer userId) {
        ResumeModel resumeModel = resumeRepo.findByUserId(userId);

        if (resumeModel == null) {
            resumeModel = new ResumeModel();
            resumeModel.setUserId(userId);
            resumeRepo.save(resumeModel);
        }

        ResumeDTO resumeDTO = new ResumeDTO();
        AppUtil.copyPropertiesIgnoreNull(resumeModel, resumeDTO);
        return resumeDTO;
    }



    public void updateResume(ResumeDTO resumeDTO, Integer userId) {

        ResumeModel resumeModel = resumeRepo.findByUserId(userId);
        if (resumeModel == null) {
            resumeModel = new ResumeModel();
            resumeModel.setUserId(userId);
        }
        AppUtil.copyPropertiesIgnoreNull(resumeDTO, resumeModel);
        resumeRepo.save(resumeModel);
    }


    public void updateResumePrs(ResumePrsDTO resumeDTO, int userId) {
        ResumeModel resumeModel = resumeRepo.findByUserId(userId);
        if (resumeModel == null) {
            resumeModel = new ResumeModel();
            resumeModel.setUserId(userId);
        }

        StringBuilder skillStr = new StringBuilder();
        String[] chosenSkills = resumeDTO.getChosenSkills();
        for (int i = 0; i < chosenSkills.length; i++) {
            skillStr.append(chosenSkills[i]);
            if (i < chosenSkills.length - 1) {
                skillStr.append(",");
            }
        }
        resumeDTO.setSkills(skillStr.toString());
        AppUtil.copyPropertiesIgnoreNull(resumeDTO, resumeModel);
        resumeRepo.save(resumeModel);
    }
}
